﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dominio
{
    public interface IDatos
    {
        // Categorias

        void altaCategoria(BLCategoria blc);

        void modificarCategoria(BLCategoria blc);

        void bajaCategoria(BLCategoria blc);

        BLCategoria getBLCategoria(int idCat);

        List<BLCategoria> getBLCategorias();

        // Productos

        void altaProducto(BLProducto blp);

        void modificarProducto(BLProducto blp);

        void bajaProducto(int idProd);

        void agregarVideo_Producto(int idProd, Byte[] video);

        void eliminarVideo_Producto(int idProd);

        BLProducto getBLProducto(int idProd);

        List<BLProducto> getBLProductos();

        List<BLProducto> visualizarCatalogo(int idCat);

        void registrarUsuario(BLUsuario u);

        void modificarUsuario(BLUsuario u);

        void bajaUsuario(BLUsuario u);

        void agregarProductoACarrito(string usuario, int codProducto);

        void agregarCompra(DateTime fecha, string direccion, string telefono, string blu);

        List<ProductoVendido> nProductos(int n);

        List<CategoriaVendida> analisisVentas(DateTime fchini, DateTime fchfin);
        
        int cantProductos();

        BLUsuario getUsuarioPorUserName(string usuario);

        void eliminarCarrito(BLUsuario u);

        int getCantProductosAgregados(string userName1, int productoID1);

        BLCarritoCompra getCarritoCompra(string username);

        List<BLUsuario> getBLUsuarios();
    }
}
